/**
 * This file was auto-generated by openapi-typescript.
 * Do not make direct changes to the file.
 */


export interface paths {
  "/api/schema/": {
    /**
     * @description OpenApi3 schema for this API. Format can be selected via content negotiation.
     *
     * - YAML: application/vnd.oai.openapi
     * - JSON: application/vnd.oai.openapi+json
     */
    get: operations["api_schema_retrieve"];
  };
  "/api/v1/generate": {
    post: operations["api_v1_generate_create"];
  };
  "/api/v1/login/": {
    post: operations["api_v1_login_create"];
  };
  "/api/v1/register/": {
    post: operations["api_v1_register_create"];
  };
  "/api/v1/tour/": {
    get: operations["api_v1_tour_list"];
    post: operations["api_v1_tour_create"];
  };
  "/api/v1/tour/{id}": {
    get: operations["api_v1_tour_retrieve"];
    delete: operations["api_v1_tour_destroy"];
    patch: operations["api_v1_tour_partial_update"];
  };
  "/api/v1/tour/{id}/book": {
    post: operations["api_v1_tour_book_create"];
    delete: operations["api_v1_tour_book_destroy"];
  };
  "/api/v1/tour/{id}/users": {
    get: operations["api_v1_tour_users_list"];
  };
  "/api/v1/user": {
    get: operations["api_v1_user_retrieve"];
  };
  "/api/v1/user/tours": {
    get: operations["api_v1_user_tours_list"];
  };
  "/api/v1/ympay": {
    post: operations["api_v1_ympay_create"];
  };
}

export type webhooks = Record<string, never>;

export interface components {
  schemas: {
    AddTour: {
      id: number;
      description: string;
      /** Format: uri */
      image: string;
      name: string;
      /** Format: int64 */
      seats: number;
      /** Format: int64 */
      price: number;
      /** Format: date-time */
      arrivalDate: string;
      /** Format: date-time */
      departureDate: string;
    };
    AllUsersResponse: {
      id: number;
      first_name: string;
      last_name: string;
      email: string;
      isPaid: boolean;
    };
    MessageResponse: {
      success: boolean;
      message: string;
    };
    PatchedTourEdit: {
      id?: number;
      description?: string;
      /** Format: uri */
      image?: string;
      name?: string;
      /** Format: int64 */
      seats?: number;
      /** Format: int64 */
      price?: number;
      /** Format: date-time */
      arrivalDate?: string;
      /** Format: date-time */
      departureDate?: string;
    };
    TokenResponse: {
      success: boolean;
      token: string;
      isAdmin: boolean;
    };
    TourDescriptionGenerator: {
      name: string;
      sketch: string;
    };
    TourResponse: {
      id: number;
      name: string;
      description: string;
      price: number;
      seats: number;
      isActive: boolean;
      /** Format: uri */
      image: string;
      /** Format: date-time */
      arrivalDate: string;
      /** Format: date-time */
      departureDate: string;
      isPaid?: boolean;
      isBook?: boolean;
      availableSeats: number;
    };
    UserLogin: {
      /** Format: email */
      email: string;
      password: string;
    };
    UserRegister: {
      first_name: string;
      last_name: string;
      /** Format: email */
      email: string;
      password: string;
    };
    UserResponse: {
      id: number;
      first_name: string;
      last_name: string;
      email: string;
      isAdmin: boolean;
    };
    UserTourResponse: {
      id: number;
      name: string;
      description: string;
      price: number;
      seats: number;
      isActive: boolean;
      /** Format: uri */
      image: string;
      /** Format: date-time */
      arrivalDate: string;
      /** Format: date-time */
      departureDate: string;
      isPaid: boolean;
      isBook?: boolean;
      availableSeats: number;
    };
  };
  responses: never;
  parameters: never;
  requestBodies: never;
  headers: never;
  pathItems: never;
}

export type $defs = Record<string, never>;

export type external = Record<string, never>;

export interface operations {

  /**
   * @description OpenApi3 schema for this API. Format can be selected via content negotiation.
   *
   * - YAML: application/vnd.oai.openapi
   * - JSON: application/vnd.oai.openapi+json
   */
  api_schema_retrieve: {
    parameters: {
      query?: {
        format?: "json" | "yaml";
        lang?: "af" | "ar" | "ar-dz" | "ast" | "az" | "be" | "bg" | "bn" | "br" | "bs" | "ca" | "ckb" | "cs" | "cy" | "da" | "de" | "dsb" | "el" | "en" | "en-au" | "en-gb" | "eo" | "es" | "es-ar" | "es-co" | "es-mx" | "es-ni" | "es-ve" | "et" | "eu" | "fa" | "fi" | "fr" | "fy" | "ga" | "gd" | "gl" | "he" | "hi" | "hr" | "hsb" | "hu" | "hy" | "ia" | "id" | "ig" | "io" | "is" | "it" | "ja" | "ka" | "kab" | "kk" | "km" | "kn" | "ko" | "ky" | "lb" | "lt" | "lv" | "mk" | "ml" | "mn" | "mr" | "ms" | "my" | "nb" | "ne" | "nl" | "nn" | "os" | "pa" | "pl" | "pt" | "pt-br" | "ro" | "ru" | "sk" | "sl" | "sq" | "sr" | "sr-latn" | "sv" | "sw" | "ta" | "te" | "tg" | "th" | "tk" | "tr" | "tt" | "udm" | "ug" | "uk" | "ur" | "uz" | "vi" | "zh-hans" | "zh-hant";
      };
    };
    responses: {
      200: {
        content: {
          "application/vnd.oai.openapi": {
            [key: string]: unknown;
          };
          "application/yaml": {
            [key: string]: unknown;
          };
          "application/vnd.oai.openapi+json": {
            [key: string]: unknown;
          };
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
    };
  };
  api_v1_generate_create: {
    requestBody: {
      content: {
        "application/json": components["schemas"]["TourDescriptionGenerator"];
        "application/x-www-form-urlencoded": components["schemas"]["TourDescriptionGenerator"];
        "multipart/form-data": components["schemas"]["TourDescriptionGenerator"];
      };
    };
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["MessageResponse"];
        };
      };
    };
  };
  api_v1_login_create: {
    requestBody: {
      content: {
        "application/json": components["schemas"]["UserLogin"];
        "application/x-www-form-urlencoded": components["schemas"]["UserLogin"];
        "multipart/form-data": components["schemas"]["UserLogin"];
      };
    };
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["TokenResponse"];
        };
      };
    };
  };
  api_v1_register_create: {
    requestBody: {
      content: {
        "application/json": components["schemas"]["UserRegister"];
        "application/x-www-form-urlencoded": components["schemas"]["UserRegister"];
        "multipart/form-data": components["schemas"]["UserRegister"];
      };
    };
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["TokenResponse"];
        };
      };
    };
  };
  api_v1_tour_list: {
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["TourResponse"][];
        };
      };
    };
  };
  api_v1_tour_create: {
    requestBody: {
      content: {
        "application/json": components["schemas"]["AddTour"];
        "application/x-www-form-urlencoded": components["schemas"]["AddTour"];
        "multipart/form-data": components["schemas"]["AddTour"];
      };
    };
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["MessageResponse"];
        };
      };
    };
  };
  api_v1_tour_retrieve: {
    parameters: {
      path: {
        id: number;
      };
    };
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["TourResponse"];
        };
      };
    };
  };
  api_v1_tour_destroy: {
    parameters: {
      path: {
        id: number;
      };
    };
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["MessageResponse"];
        };
      };
    };
  };
  api_v1_tour_partial_update: {
    parameters: {
      path: {
        id: number;
      };
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PatchedTourEdit"];
        "application/x-www-form-urlencoded": components["schemas"]["PatchedTourEdit"];
        "multipart/form-data": components["schemas"]["PatchedTourEdit"];
      };
    };
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["MessageResponse"];
        };
      };
    };
  };
  api_v1_tour_book_create: {
    parameters: {
      path: {
        id: number;
      };
    };
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["MessageResponse"];
        };
      };
    };
  };
  api_v1_tour_book_destroy: {
    parameters: {
      path: {
        id: number;
      };
    };
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["MessageResponse"];
        };
      };
    };
  };
  api_v1_tour_users_list: {
    parameters: {
      path: {
        id: number;
      };
    };
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["AllUsersResponse"][];
        };
      };
    };
  };
  api_v1_user_retrieve: {
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["UserResponse"];
        };
      };
    };
  };
  api_v1_user_tours_list: {
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["UserTourResponse"][];
        };
      };
    };
  };
  api_v1_ympay_create: {
    responses: {
      200: {
        content: {
          "application/json": components["schemas"]["MessageResponse"];
        };
      };
    };
  };
}
